Navigating autonomous coverage robots

ABSTRACT

A method of navigating an autonomous coverage robot between bounded areas includes positioning a navigation beacon in a gateway between adjoining first and second bounded areas. The beacon configured to transmit a gateway marking emission across the gateway. In some example, the navigation beacon may also transmit a proximity emission laterally about the beacon, where the robot avoids cleaning and migration within the proximity emission. The method also includes placing the coverage robot within the first bounded area. The robot autonomously traverses the first bounded area in a cleaning mode and upon encountering the gateway marking emission in the gateway, the robot remains in the first bounded area, thereby avoiding the robot migration into the second area. Upon termination of the cleaning mode in the first area, the robot autonomously initiates a migration mode to move through the gateway, past the beacon, into the second bounded area.

CROSS-REFERENCE TO RELATED APPLICATIONS

This U.S. continuation patent application claims priority under 35U.S.C. §120 to U.S. patent application Ser. No. 11/633,869 filed on Dec.4, 2006, which claims priority under 35 U.S.C. §119(e) to U.S.provisional patent application 60/741,442 filed on Dec. 2, 2005. Theentire contents of the aforementioned applications are herebyincorporated by reference.

TECHNICAL FIELD

This disclosure relates to autonomous coverage robots and associatednavigation systems.

BACKGROUND

Autonomous robots are robots which can perform desired tasks inunstructured environments without continuous human guidance. Many kindsof robots are autonomous to some degree. Different robots can beautonomous in different ways. An autonomous coverage robot traverses awork surface without continuous human guidance to perform one or moretasks. In the field of home, office and/or consumer-oriented robotics,mobile robots that perform household functions such as vacuum cleaning,floor washing, patrolling, lawn cutting and other such tasks have beenwidely adopted.

SUMMARY

According to one aspect of the invention, a robot features a chassis, awheeled drive supporting the chassis and operable to maneuver the robot,sensors responsive to an environment about the robot, a memory and acontroller. The memory stores instructions configured as a set ofbehaviors to cause the wheeled drive to move the robot according to apredetermined sequence of the behaviors of the set, at least one of thebehaviors of the set featuring a sensor-based enabling conditiondependent upon a sensor detection and at least one of the behaviors ofthe set featuring a sequence-based enabling condition dependent upon acompletion of another behavior in the set. The memory also storesinstructions configured as an arbiter to enable control of the wheeleddrive according to a behavior priority, the arbiter passing on commandsfrom a highest priority behavior to control the wheeled drive whenenabling conditions of the highest priority behavior are satisfied. Thecontroller is in communication with the wheeled drive, the sensors, andthe memory, and executes the arbiter to control the wheeled driveaccording to the highest priority behavior. The behaviors of the settend to control the wheeled drive in the predetermined sequence as thesensor-based enabling conditions and the sequence-based enablingconditions are satisfied.

In some embodiments, the set of behaviors has a sequence-based enablingcondition from a parent set of behaviors, the set of behaviors beingexecuted in the predetermined sequence upon enablement and apredetermined sequence of the parent set of behaviors being resumed uponeither completion of the set of behaviors or cessation of the enablingcondition.

In some cases, the set of behaviors has a sensor-based enablingcondition, the controller discontinuing execution of the predeterminedsequence upon cessation of the enabling condition.

In some applications, behaviors of the set having a sequence-basedenabling condition have a lower priority than behaviors of the sethaving only sensor-based enabling conditions. For example, behaviors ofthe set having a sequence-based enabling condition may have a lowerpriority than at least an escape behavior and an avoidance behavior.

In some configurations, a docking behavior having a sensor-basedenabling condition has a higher priority than both a navigation behaviorhaving a sensor-based enabling condition and a sequence-based enablingcondition. In some configurations, a coverage behavior having asensor-based enabling condition has a lower priority than both anavigation behavior having a sensor-based enabling condition and asequence-based enabling condition.

In some embodiments the controller aborts execution of a behavior uponcessation of the associated enabling condition.

At least one behavior of the set may be a sequenced-reactive behaviorhaving at least one sensor-based enabling condition and at least onesequence-based enabling condition. At least partial execution of anotherbehavior of the set may enable the sequence-based enabling condition ofthe sequenced-reactive behavior, and the controller may abort thesequenced-reactive behavior upon cessation of at least one of theenabling conditions of the sequenced-reactive behavior. In some examplesat least two sequenced-reactive behaviors of the set share at least onesensor-based enabling condition or sequence-based enabling condition,thereby allowing multiple potential entry points into the predeterminedsequence upon satisfying the shared enabling condition.

The sensor-based enabling condition may include detecting a navigationpose, or detecting an obstacle proximate the robot, for example.

In some cases the memory also stores a sequence planner executable bythe controller to monitor a current state of the predetermined sequenceand to set a sequence-based enabling condition according to a currentsequence state of the robot upon detection of a sequence initiatingevent. The sequence planner may be configured to set a sequence-basedenabling condition according to a current location state of a monitoredtopological state map, for example. The sequence planner may beconfigured to instruct the arbiter to allow execution of a behavior bythe controller based on a monitored state of a finite state machinestored in the memory. In some arrangements the sequence planner controlsexecution by the controller of at least one goal oriented sequence ofbehaviors, the behaviors of the goal oriented sequence having asequence-based enabling condition set by the sequence planner accordingto a current sequence state of the robot upon detection of a goaloriented sequence initiating event.

Another aspect of the invention features a method of navigating a robot,the method including monitoring whether sensor-based enabling conditionsof behaviors are satisfied, each sensor-based enabling condition beingdependent upon a sensor detection; monitoring whether sequence-basedenabling conditions of behaviors are satisfied, each sequence-basedenabling condition being dependent upon a successful execution of apreceding behavior; arbitrating among the behaviors to permit control bythe behaviors according to a priority, by permitting control by ahighest priority behavior when the enabling conditions of the highestpriority behavior are satisfied; and driving the robot to tend tonavigate according to a predetermined sequence of control by thebehaviors as the sensor-based enabling conditions and the sequence-basedenabling conditions of the behaviors are successively satisfied.

In some embodiments arbitrating among the behaviors includes arbitratingamong a set of behaviors to be executed in a predetermined sequence, theset having a sequence-based enabling condition from a parent set ofbehaviors; executing the set of behaviors in the predetermined sequenceupon enablement, and resuming a predetermined sequence of the parent setof behaviors upon completion of the set of behaviors or cessation of theenabling condition.

In some cases, arbitrating among the behaviors includes arbitratingamong a set of behaviors to be executed in a predetermined sequence, theset having a sensor-based enabling condition; and discontinuingexecution of the predetermined sequence upon cessation of the enablingcondition.

Behaviors having a sequence-based enabling condition may have a lowerpriority than behaviors of the set having only sensor-based enablingconditions. Behaviors having a sequence-based enabling condition mayhave a lower priority than at least an escape behavior and an avoidancebehavior.

In some examples, a docking behavior having a sensor-based enablingcondition has a higher priority than both a navigation behavior having asensor-based enabling condition and a sequence-based enabling condition.

In some examples, a coverage behavior having a sensor-based enablingcondition has a lower priority than both a navigation behavior having asensor-based enabling condition and a sequence-based enabling condition.

Some examples of the method include aborting execution of a behaviorupon cessation of the associated enabling condition.

In some embodiments, at least one behavior includes a sequenced-reactivebehavior having at least one sensor-based enabling condition and atleast one sequence-based enabling condition. At least partial executionof another behavior of the set enables the sequence-based enablingcondition of the sequenced-reactive behavior, and the robot aborts thesequenced-reactive behavior upon cessation of at least one of theenabling conditions of the sequenced-reactive behavior. In some cases atleast two sequenced-reactive behaviors share at least one sensor-basedenabling condition or sequence-based enabling condition, therebyallowing multiple potential entry points into the predetermined sequenceupon satisfying the shared enabling condition.

In some cases the sensor-based enabling condition includes detecting anavigation pose or detecting an obstacle proximate the robot.

Some examples also include monitoring a current state of a predeterminedsequence of behaviors, and setting a sequence-based enabling conditionaccording to a current sequence state of the robot upon detection of asequence initiating event. The sequence-based enabling condition may beset according to a current location state of a monitored topologicalstate map, for example. The step of arbitrating may include executing atleast one goal oriented sequence of behaviors, the behaviors of the goaloriented sequence having a sequence-based enabling condition set by thesequence planner according to a current sequence state of the robot upondetection of a goal oriented sequence initiating event.

DESCRIPTION OF DRAWINGS

FIG. 1A is a perspective view showing an example of an autonomouscoverage robot.

FIG. 1B is an exploded views of an autonomous coverage robot.

FIG. 1C is an exploded views of a bumper of an autonomous coveragerobot.

FIG. 2 illustrates the positions of omni-directional receiver anddirectional receiver on the bumper of an autonomous coverage robot.

FIG. 3 is a perspective view of a directional receiver.

FIG. 4 is a front view of a directional receiver.

FIG. 5 is an exploded view of the directional receiver.

FIGS. 6-8 show perspective, side, and cut-away views of theomni-directional receiver.

FIG. 9 shows a below-perspective view autonomous coverage robot.

FIG. 10 shows an exploded view of an example navigation beacon.

FIGS. 11 and 12 show perspective and front views of an example beaconemitter assembly.

FIG. 13 shows an example of a simplified navigation beacon that may beused with an autonomous mobile robot navigation system.

FIGS. 14-17 show various views of an example base station that may beincluded in the autonomous mobile robot system.

FIGS. 18-21 show perspective, top, rear, and side views of an exampleemitter assembly used in base station.

FIG. 22 shows a block diagram of representative electronic structure ofan autonomous coverage robot.

FIG. 23A shows a first example of applying of a method of navigating anautonomous coverage robot between bounded areas using navigation beaconswith the addition of a base station; and FIG. 23B shows a second examplein which the robot encounters more than one beam at the same time.

FIGS. 24A and 24B are block diagrams illustrating a softwarearchitecture for navigating an autonomous coverage robot.

FIGS. 25A-C show schematic views of a robot moving from one area toanother using a navigation beacon.

FIG. 26 shows a schematic view of a beam align behavior of a robot.

FIG. 27 shows a schematic view of a directed beam homing behavior of arobot.

FIG. 28 shows a schematic view of a field align behavior of a robot.

FIG. 29 shows a schematic view of a field following behavior of a robot.

FIG. 30 shows a schematic view of a leaving beacon behavior of a robot.

FIGS. 31A-H show schematic views of a robot moving from one area toanother using a navigation beacon.

FIGS. 32A-E show schematic views of a robot docking with a base station.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

FIGS. 1A and 1B show above-perspective and exploded views of anautonomous coverage robot 100. The robot 100 has a chassis 102, acontroller 103, an omni-directional receiver 104, and a directionalreceiver 106. Chassis 102 has a forward drive direction and carriescontroller 103 and the receivers 104 and 106 on a bumper 107. Receivers104 and 106 provide navigation information to controller 103. Usinginput from receivers 104 and 106, controller 103 generates commands tobe carried out by the robot 100. As a result, the robot 100 is capableof cleaning floors in an autonomous fashion.

FIG. 2 illustrates the positions of omni-directional receiver 104 anddirectional receiver 106 on the bumper 107 of the robot 100. Bumper 107may also have other sensors, as shown in FIG. 1C, to aid the robot 100as it navigates about its surroundings. Proximity sensors 1072 may beused to determine when an obstacle is close to the robot 100. Contactsensors 1074 may be used to determine when the robot 100 has physicallyencountered an object. Cliff sensors 1076 may be used to sense when therobot 100 has encountered the edge of the floor, such as when itencounters a set of stairs.

Omni directional sensors 104 may be used to sense when the robot 100 isin close proximity to a navigation beacon. For example, theomni-directional sensor 104 may relay a signal to a control system thatindicates the strength of an emission, where a stronger signal indicatescloser proximity to a navigation beacon.

Proximity sensors 1072 may be used to detect when an obstacle is nearby.The proximity sensors 1072 may, for example, be infrared or ultrasonicsensors that provide a signal when an object is within a given range ofthe robot 100.

Contact or bump sensors 1074 may be used to detect if the robot 100physically encounters an obstacle. Such sensors 1074 may use a physicalproperty such as capacitance or physical displacement within the robot100 to determine when it has encountered an obstacle.

Cliff sensors 1076 may be used to sense when the robot 100 hasencountered the edge of the floor, such as when it encounters a set ofstairs. The robot 100 may have behaviors that cause it to take anaction, such as changing its direction of travel, when an edge isdetected.

In some implementations, cliff sensors 1074 may be installed within amounting apparatus that stabilizes and protects the sensor and whichpositions the sensor to point towards the window installed onto thebottom of the mounting apparatus. Together the sensor, the mountingapparatus and the window comprise a cliff sensor unit. There may, forinstance, be four cliff sensor units installed within the bumper.

Reliability of a cliff sensor may be increased by reducing dust buildup.In some implementations, a window may be installed on the bottom of themounting apparatus which includes a shield mounted within a slantedmolding composed of a material which prevents dust build up, such as anantistatic material. The shield component and the molding may be weldedtogether. To further facilitate the reduction in dust and dirt buildup,the shield may be mounted on a slant to allow dirt to more easily slideoff.

In some implementations, a secondary cliff sensor may be present behindexisting cliff sensors to detect floor edges in the event that a wheeldrop sensor on the caster wheel fail.

Controller 103 may be configured to propel the robot 100 according to aheading setting and a speed setting. Signals received from proximity andcontact sensors may be used by the control system to issue commands thatdeal with obstacles. Signals from the proximity and contact sensors maycause the control system to change the commanded speed or heading of therobot 100. For instance, a signal from a proximity sensor due to anearby wall may result in the control system issuing a command to slowdown. In another instance, a collision signal from the contact sensorsdue to an encounter with a chair may cause the control system to issue acommand to change heading. In other instances, the speed setting of themobile the robot may not be reduced in response to the contact sensor;and/or the heading setting of the mobile the robot may not be altered inresponse to the proximity sensor, but instead the two sensors mayoperate independently.

Controller 103 may include a first independent behavioral routineconfigured to adjust the speed setting of the mobile the robot; and asecond independent behavioral routine configured to alter the headingsetting of the mobile the robot, in which the first and secondindependent behavioral routines are configured to execute concurrentlyand mutually independently. The first independent behavioral routine maybe configured to poll the proximity sensor, and the second independentbehavioral routine may be configured to poll the kinetic bump sensor.

FIG. 3-5 show perspective, front, and exploded views of the directionalreceiver 104. The directional receiver 104 is positioned on the front ofthe chassis 102. Emissions may be received along the drive direction bythe directional receiver 104 which generates and sends correspondingsignals to controller 103. The directional receiver 104 includes amounting receptacle 108 with a first aperture 110 and a second aperture112 that are aligned with the drive direction of the chassis 102.Associated with the apertures 110, 112 are a first component receiver114 and a second component receiver 116.

The component receivers 114, 116 are positioned relative to theapertures 110, 112 such that emissions which originate along the drivingdirection and fall on the directional receiver 104 may pass through theapertures 110, 112 and onto their respective component receivers 114,116. Emissions falling on the component receivers 114, 116 result in acorresponding signals being generated which may be used by controller103 to determine the direction of the emission relative to the robot'sdrive direction. A cover 117 attached to the top of the mountingreceptacle 108 to prevent emissions that do not originate along thedriving direction from falling on the component receivers 114, 116. Insome implementations, locking tabs 119 or some other fastening methodmay be used to secure the cover 117 to the mounting receptacle 108.

In some implementations, the component receivers 114, 116 of thedirectional receiver 104 can detect a homing beam with an overlap ofsubstantially between 10% and 30%. In one example, the first and secondcomponent receivers 114, 116 may be positioned such that emissionsfalling squarely on each would form an angle in the range of 1 to 15degrees. In another example, the first and second component receivers114, 116 may be aligned so emissions aligned with them cross at a point3 to 5 meters in front of the robot. In one example, each componentreceiver 114, 116 receives emissions within a sweep angle of betweenabout 28 to 33 degrees with a center of the sweep at about 14 degreesfrom a direction normal to the directional receiver 104 and a sweepoverlap of about 10 degrees with the other component receiver 114, 116.

In some cases, the controller 103 may maneuver the robot 100 to detectan emission with the omni-directional receiver 104. The direction of theemission may be determined using the component receivers 114, 116. Inresponse to the detection, the controller 103 may orient the chassis 102to align the robot drive direction with the determined emissiondirection.

In other cases, controller 103 may orient the chassis 102 to align therobot drive direction with the determined emission direction based onthe signals generated by the component receivers 114, 116 in response toemissions detected with the directional receiver 106.

FIGS. 6-8 show perspective, side, and cut-away views of theomni-directional receiver 104. The omni-directional receiver 104 mayinclude a housing 118, a conical reflector 120 and an emission receiver122. The housing 118 has an upper portion 124 and an inner cavity 126.The upper portion 124 may allow a transmission of an emission into innercavity 126. Conical reflector 120 is located on an upper surface of thecavity 126 to reflect emissions falling on the upper portion 124 of thehousing 118 into the inner cavity 126. Emission receiver 122 is locatedin inner cavity 126 below conical reflector 120.

In some implementations, the receivers 114, 116, and 122 may beconfigured to receive transmissions of infrared light (IR). In suchcases, a guide 128 (e.g. a light pipe) may guide emissions reflected offthe conical reflector 120 and channels them to emission receiver 122.

FIG. 9 shows a below-perspective view of the autonomous coverage robot100. A drive system 130 includes a first drive wheel 132 and a seconddrive wheel 134 which support chassis 102. A castor 136 may provideadditional support to chassis 102. Motors may be mechanically coupled tothe drive wheels to propel the robot 100, providing forward, reverse,and turning capabilities.

The robot 100 may have a floor cleaning system that removes dirt anddebris from the floor as it maneuvers about. The floor cleaning systemmay include a floor cleaning assembly 140, a cleaning bin 142 and a binsensor (not shown). The floor cleaning assemblies 140 and 146 andcleaning bin 142 may be carried by the chassis 102. Cleaning bin 142 maybe arranged to collect debris removed from a floor being cleaned bycleaning assembly 140. The bin sensor may be configured to generate asignal that indicates whether the cleaning bin has been filled to athreshold. When the threshold has been reached, controller 103 mayinitiate a docking sequence with a base station (described below).Cleaning bin 142 may be accessed to empty its contents either manuallyor, in some implementations, the robot 100 may automatically emptycleaning bin 142 when docked.

In addition to providing a framework for the other elements that make upthe robot 100, the chassis 102 may have a ridge on its front which ishigher than all other points on the chassis 102. Such a ridge may bestop the robot 100 if it encounters an overhead obstacle, such as acouch, and prevent it from becoming wedged underneath. To enable therobot 100 to more easily free itself in the event it becomes wedged,controller 103 may normally command the drive system 130 to operate atless than maximum torque, for instance at 50% of capacity. If the robot100 becomes wedged, for instance, sensed by increased current flowing tothe drive motors, controller 103 may command increased torque to freethe robot 100.

Another example of an anti-wedging system includes a spring loaded wheelsystem having a potentiometer to measure how much the robot 100 ispushed down by a potential wedging obstacle. Another example includes aninfrared sensor disposed on a lower surface of the robot 100, where theinfrared sensor is used to measure a distance that the robot 100 ispushed down.

FIG. 10 shows an exploded view of an example navigation beacon 150.Navigation beacon 150 may be used in conjunction with existing walls orother obstacles to create a bounded area. Bounding an area may be done,for example, to restrict a robot from entering or leaving an area. Thenavigation beacon 150, along with the robot 100 described above, form anexample of an autonomous mobile robot system.

Navigation beacon 150 has a beacon emitter assembly 152, which includesa gateway beacon emitter 154 and an omni-directional emitter 160.Gateway beacon emitter 154 may be arranged to transmit a gateway markingemission. For instance, beacon 150 may be located within a gateway thatseparates a first and second adjacent areas and emit the gateway markingemission to form a boundary. Omni-directional receiver 104 anddirectional receiver 106 on the robot 100 may detect the gateway markingemissions and thereby function as beacon emission sensors. For example,beacon 150 and the robot 100 may use infrared light (IR) emitters andsensors to create and detect the gateway marking emissions.

In one example, the robot 100 controls the state of the navigation beamsthrough commands transmitted over a packet radio network. The addressthat the beacons respond to on this network is a combination of a robotaddress and a node address. After installing batteries in the beacon150, the beacon 150 periodically tries to contact any robot to see if itshould wake up and operate its emitters. A robot 100 may respond bytransmitting a radio packet containing an invitation to join its networkand a temporary address to use. While operating with a temporaryaddress, the beacon 150 transmits an infrared code in a fence beam fromemitter 154 and force field beam from omni-directional emitter 160indicating that it is not bound, i.e. its radio address is temporary.When a robot 100 sees a beam with the bound code, it iterativelytransmits a radio packet to every recently assigned temporary address tosend a new code in its beam called a wink. If the robot 100 sees a winkcode, it transmits a radio packet containing a new node address to beused from now on as well as a time indicating the number of hours theaddress is valid for use. Having bound to a robot 100 successfully, thebeacon 150 will henceforth only wake up in the presence of that robot100. The technique of confirming radio communications using infraredlight signals is designed to prevent a robot 100 that is not on the samefloor as the beacon 150 from controlling it permanently.

Drive system 130 may be configured to maneuver the robot 100 about thefirst area while in a cleaning mode. In the cleaning mode, the robot 100may be redirected in response to detecting the gateway marking emission.In addition, the drive system 130 may also be configured to maneuver therobot 100 through the gateway into the second bounded area while in amigration mode.

While in the cleaning mode, the robot 100 may remain in the firstbounded area by changing its drive direction when it detects the gatewaymarking emission. The gateway marking emission thus acts as a virtualbarrier which may prevent the robot 100 from leaving the first boundedarea.

In some instances, the drive system 130 may be configured to maneuverthe robot 100 about the first bounded area in the cleaning mode for apreset time interval. When the preset time interval elapses, the drivesystem 130 may be automatically put in migration mode. While inmigration mode, drive system 130 may be configured to maneuver the robot100 across the gateway emission. In other instances, the drive systemmay configured to maneuver the robot about the first bounded area in thecleaning mode until it encounters of the gateway marking emission apreset number of times. Once the gateway marking emission has beenencountered the preset number of times, the migration mode may beautomatically initiated.

The robot 100 may include a transmitter for communicating with beacon150. The transmitter may be used to signals beacon 150 to halt or pausetransmission of the gateway emission in the migration mode. By signalingbeacon 150 to turn on its various emitters only when needed, the systemmay implement a power-saving function. Such a function may serve toextend battery life in beacon 150.

FIGS. 11 and 12 show perspective and front views of beacon emitterassembly 152. Beacon emitter assembly 152 includes a first directedvectoring beacon emitter 156 and a second directed vectoring beaconemitter 158. Directed vectoring beam emitters may be used to create anemission field with a characteristic edge and spread pattern that may beused to define a navigation route. Navigation beacon 150 may be locatedwithin a gateway between two bounded areas with vectoring beacon emitter156 arranged to transmit a directed vectoring emission into the firstbounded area. The angle between the directed vectoring emission and thegateway may be, for example, in the range of 45-90 degrees. In someinstances, the directed vectoring emission may consist of infraredlight.

While in migration mode, drive system 130 may be configured to directthe robot 100 toward beacon 150 when it encounters the directedvectoring emission emanating from vectoring beacon emitter 156. Therobot 100 may then determine the position of the beacon 150 based on thedetected direction of the directed vectoring emission relative todirectional receiver 106. Once position is determined, the robot 100 mayalign itself in a drive direction relative to the directed vectoringemission. For example, the robot 100 may advance forward along the pathof the directed vectoring emission to reach and traverse the gateway inwhich beacon 150 is located.

The robot 100 may be able to remotely activate and deactivate the beaconemissions. For example, the robot 100 may use wireless communication,such as radiofrequency (RF) communication, to pass activation anddeactivation signals. The robot 100 may remotely activate the directedvectoring emission of the beacon 150 and deactivate the gateway emissionupon initiating the migration mode. The robot 100 may remotelydeactivate the directed vectoring emission of beacon 150 and activatethe gateway emission upon terminating the migration mode.

In some instances, the beacon 150 may be configured to communicateschedule information with the robot 100. For example, beacon 150 may beable to transmit times for which the robot 100 should enter cleaningmode, when it should enter migration mode, etc. Schedule information mayinclude details such as starting or ending times and dates.

Navigation beacon 150 may also transmit a proximity emission laterallyabout itself. The robot 100 may avoid cleaning and migration within theproximity emission by executing a pre-configured behavior such aschanging its course when the proximity emission is detected. Theproximity emission may be thought of as a “force field” through whichthe robot 100 is not permitted to pass.

Navigation beacon 150 may have a switch to select between a confinementmode, a navigation mode, and an off mode. Navigation beacon 150 may havea range select switch like a virtual wall. There may be a light toindicate when the navigation beacon is operating. The navigation beacon150 may turn on an operational indicator light it is enabled or onlywhen commanded to do so by the robot 100. There may also be a lowbattery warning, and there may be a separate low battery light.

In order to reduce power consumption and thus increase battery life,different operational modes may exist for the navigation beacon. Whenthe robot 100 is not operating, navigation beacon 150 may be in a lowpower mode in which emitters are off and the navigation beaconperiodically monitors the communication link to determine if a wakeup isnecessary. When the robot 100 is operating, it may send a signal to asingle or multiple navigation beacons to turn on their respectiveemitters. There may be different commands to turn on the variousemitters. In addition, the navigation beacon may return to low powermode after an elapsed time.

In the event multiple navigation beacon are used with the robot 100,each navigation beacon may have a unique identifier, such as a 16-bit(or larger) identification number contained in memory. This identifiermay be generated in the factory or by the navigation beacon itself. Ifthe identifier is generated in the factory it may be stored innon-volatile memory in the beacon. The robot 100 may use the uniqueidentifier to generate an internal map which may be used to navigatefrom one bounded region to another by navigating from one navigationbeacon to another. In some implementations, the identifier fornavigation beacon 150 may be used to generate signals encoded in itsemissions that may be detected by the robot 100. In the event thatnavigation beacon 150 is unable to transmit the entire identificationnumber, a unique code maybe generated as a derivation of the ID or bynegotiation between the navigation beacons that are present and/or therobot 100.

The robot and navigation beacons may communicate via point to point orvia broadcast transmissions. In the point to point scheme, the robotwould have to learn the identifiers of all of the navigation beacons.Then it could send transmissions with a data field indicating thedestination navigation beacon. That navigation beacon and only thatnavigation beacon would respond accordingly. This has the advantage thatonly specific navigation beacons would respond, keeping other navigationbeacons off and thus increasing their battery life. User interaction maybe used to train the robot to know the navigation beacons.

An alternate concept is for the robot to broadcast to all navigationbeacons a command to enable them. This scheme works without userinteraction. In order to mitigate this effect of increased batteryconsumption and reduced battery life on these navigation beacons, analleviating technique is to reduce the power of the robot transmission.

FIG. 13 shows an example of a simplified navigation beacon 152 that maybe used with an autonomous mobile robot navigation system. In thisexample, the beacon has a beacon emitter assembly 152 including agateway emitter 154 and an omni-directional emitter 160, but does nothave vectoring emitters. Such a beacon may be used to define boundariesof a region but not necessarily support migration functionality.

FIGS. 14-17 show various views of an example base station 180 that maybe included in the autonomous mobile robot system. Base station 180 maybe located in a bounded area served by the system. Base station 180 hasa base 182 with a defined docking direction and a robot charger 184. Therobot 100 may approach base 182 from the docking direction to dock withthe base 182. The robot charger 184 is housed in the base 182 and may beused to charge the robot 100 when it is properly docked.

The robot charger 184 may begins operating when triggered by a detectioncircuit after the robot 100 is docked to base 182. Battery conditionsmay be used to govern whether a deeply discharge mode, a pre-chargetrickle mode, or a post charge trickle mode is used to charge thebattery.

FIGS. 18-21 show perspective, top, rear, and side views of an exampleemitter assembly 186 used in base station 180. Emitter assembly 186 hasa lower housing 188 which holds an omni-directional beam emitter 190 andtwo navigational field emitters 192 and 194.

The omni-directional emitter 190 may be mounted on housing 188 and beconfigured to project a proximity beam laterally around the dockingstation through the use of an upper housing 196. Upper housing 196 maybe configured such that emissions from omni-directional emitter 190 forma desired pattern outside base 182, such as a circle.

Navigational field emitters 192 and 194 may be attached to lower housing188 and arranged to emit respective, laterally bounded and overlappingfields of emissions of signal beams. One of the emitted fields maydefine a lateral field edge aligned with the docking direction and beoverlapped by the other emitted fields. The two navigational fieldemitters of the base station may be positioned such that their angle ofoverlap may be about 6 degrees and each emitter's aperture angle may be20-30 degrees. A projection 198 on lower housing 188 may be used toshape the emissions from emitters 192, 194 to achieve the above pattern.In one example, the navigational field emitters 192 projects a beam atabout 12 degrees from a direction normal to the emitter assembly 186,where the beam sweeps about 40 degrees starting from about −5 degrees toabout 35. The other navigational field emitters 194, with the L-shapedbaffle or mask 198 terminating near the middle of the LED, projects abeam at about 12 degrees from a direction normal to the emitter assembly186, where the beam sweeps from straight out to about −35 degrees. Insome implementations, the emission fields may consist of infrared light(IR). In such cases, field emitters 190, 192, and 194 may consist ofinfrared light emitting diodes (LEDs).

FIG. 22 shows a schematic view of electronics 101 of the robot 100. Theelectronics 101 include the controller 103 which communicates with abumper micro-controller 107A that controls the omni-directional receiver104, directional receiver 106, wall proximity sensors 1072, and bumperswitch 1074. The controller 103 monitors all other sensor inputs,including the cliff sensors 1076.

FIGS. 23A-B show an example of applying of a method of navigating anautonomous coverage robot between bounded areas using navigationbeacons. The method may be applied to a system such as the example therobot navigation system described above. While the following descriptionrelates a particular software architecture and set of algorithms to thenavigation beacons disclosed as a physical infrastructure, the very sameembodiments of a robot, control and software architecture, and/or manyparticular algorithms can be used with a different physicalinfrastructure.

Accordingly, because the manner and methods by which the robot handlessequences of goals and navigation are relatively independent of theactual physical form of the infrastructure, for discussions involvingsuch manner and methods, “navigation beacon” includes active and passivelandmarks of other physical kinds (e.g., bar codes, retro-reflectivetags, illuminated or IR spots projected on the ceiling or walls,directional RF or visible light, and other features identifiable in theenvironment), and “beam” includes directed vectors of other physicalkinds (including inferred directional vectors calculated or kept inmemory that may be followed, as well as line-of-sight directions todistant observed objects). In the example shown, walls 201, a firstnavigation beacon 202 and a second navigation beacon 203 (also discussedherein as “lighthouses”) define a first bounded area 204, a secondbounded area 206, and a third bounded area 207 (which are typicallyrooms of a home). Navigation beacon 202 may be configured to transmit agateway marking emission 208 (also noted herein as a “virtual gateway”or “gateway beam”) across a gateway 210 (typically a doorway, butopenings of a few feet to 10 or 12 feet are possible, as well asarbitrary segmenting of a room without any particular openings). Thegateway marking emission 208 may be an IR signal, for example, which canbe sensed by a coverage robot 212.

The robot 212 may be placed within a bounded area 204. The robot 212 mayautonomously traverse the bounded area 204 in a cleaning mode. If therobot 212 encounters gateway marking emission 208 in gateway 210, therobot 212 remains in the bounded area 204 without moving into anadjacent bounded area 206. Upon termination of the cleaning or coveragemode in the first area, the robot 212 may autonomously (i.e., inresponse to an internal trigger condition as discussed herein, e.g.,time expired, distance covered, percent covered) enter a migration modein which the robot continues cleaning but monitors for the gateway 210,locates a gateway 210, moves to and through gateway 210, (past beacon202,) into the adjacent bounded area 206.

In some implementations, the robot 212 may autonomously enter thecleaning mode after the migration to bounded area 206 has beencompleted. While in the migration mode, the robot 202 may benon-responsive to gateway emission 208 (although the robot may recordhaving crossed the gateway emission 208). In some cases, the robot 212may remotely (i.e., by direct or relayed RF communications orline-of-sight or reflected optical signaling) deactivate gateway markingemission 208 upon entering migration mode. The robot 212 may alsoactivate gateway marking emission 208 after exiting the migration mode.

Furthermore, navigation beacon 202 may transmit a proximity emission orfield 214 laterally around (surrounding) itself, establishing anexclusion zone or “force field”. The robot 212 may detect this proximityfield and use the detection to attempt to avoid maneuvering within theexclusion zone around a beacon 202 while in the cleaning or migratingmodes. The primary purpose of the exclusion zone is to prevent the robot202 from striking the beacon 202 itself and moving it.

Navigation beacon 202 may be configured to transmit a first directedvectoring emission 216 (also discussed herein as a “directed emission,”“directed beam,” “launch beam” or “tractor beam”) into bounded area 204and a second directed vectoring emission 217 into bounded area 206, withbeacon 202 positioned within gateway 210. For example, the robot 212 maydrive toward beacon 202 upon detecting directed emission 216 while inthe migration mode.

While in the migration mode, the robot 212 may detect the directedemission 216 by sensing the directed emission 216 with a directionalreceiver 218 (also discussed herein as a “binocular sensor,” e.g.,including twin detectors in collimated tubes) located on the front ofthe robot 212 (i.e. the side of the robot 212 that is aligned with theforward the robot drive direction). Alternatively, the robot 212 maysense the directed emission 216 with an omni-directional receiver 222prior to detection by directional receiver 218. The term“omni-directional receiver” as discussed herein includes non-directionaland multi-directional receivers, e.g., receivers including two or moresensors (at compass points, etc.) directed about the periphery of therobot. The robot 212 may use the signal detected by omni-directionalreceiver 222 to then maneuver (turn in place or turn going in forward orreverse directions) to sense directed emission 216 with directionalreceiver 218. The robot 212 may align its direction of travel with apath defined by an edge 220 of directed emission 216. Directional andomni-directional receivers 218 and 222 may have construction andfunction similar to that described above.

In some cases, the robot 212 may move towards the beacon 202 along theemission path (i.e., servoing using the two beam detectors 114 and 116of the binocular sensor 106) until it senses a beacon perimeter 224(i.e. the edge of proximity field emission 214). The robot 212 may movealong beam perimeter 224 through the gateway 210 and into bounded area206. The angle between the gateway emission 208 and directed emission216 may, in some instances, be between about 45 and 90 degrees, andoptionally is about 60 degrees. The gateway emission 208 is sizedaccording to the robot diameter, and diverges to be approximately thewidth of the robot at the proximity field edge or range of detection(e.g., to prevent the robot crossing at that point). This may be a spanof 10 degrees or more, but is determined by the robot diameter. Theangle between the center of the gateway emission 208 and the center ofeach directed emission 216 is, in two different examples, about 45degrees or about 60 degrees, and each directed emission 216 beam is adiverging beam made diffuse by the slot mask near the emitter, and is,in two different examples, about 20-30 degrees (e.g., 25 degrees) orabout 30-50 degrees (e.g., 40 degrees). In some instances, the directedemissions 216 and 217 may consist of infrared light.

The robot 212 may remotely activate and/or deactivate emissions comingfrom beacon 202, such as directed emission 216 or gateway emission 208.Various methods may be used to transmit signals between the robot 212and the navigation beacons 202 and 203.

In particular, it is effective to use the same inexpensive, commonIR-LED emitters for each of the emitters of each of the beacons 202,203, and in addition for a recharging or other dock 240 for the robot212. The same sensors on the robot 212 can detect all of the emitters;and different sensors on the robot 212 (e.g., the multi-directional aswell as the collimated directional sensors) can detect the same emittersfor different purposes (as discussed herein, e.g., following, homing,stopping). In order to differentiate between the different emitters,each emitter may be encoded (e.g., modulated with a different serialcode). This also helps avoid confusion with household and other remotecontrols as well as IR components of sunlight and other ambient sources.However, as shown in FIG. 23, the robot 212 can encounter situations inwhich it is traveling through the emission paths of several differentemitters.

In this situation, especially when using optical multi-directionalreceivers or a common optical omni-directional receiver (but also inother instances, e.g., RF) the sensor or software structure isconfigured to be capable of discerning one emitter from another whenseveral signals are simultaneously received. If different frequenciesare available, then these may be employed. One strategy is for theemitters to take turns, being synchronized by their communications withthe robot or each other. However, this is complex and introduces afailure mode when synchronization breaks down. It is advantageous foreach beacon 202, 203 and dock 240 to self-control, and stagger their ownsignals in time, with intervals between each emission. For instance,each transmitted emission may be differentiated by time divisionmultiplexing (i.e., multiplexing as the beam origins are taken togetheras a system, including within a beacon having more than one beam oramong several beacons) with a fixed period random offset (e.g., whichmay be different for each beam source). The interval or random offsetmay be changed from time to time (e.g., at random intervals) or bycommunication with the robot (e.g., by RF communication when the robotdetects an interference condition). At manufacture, or upon changingoffset, e.g., the offset may be selected from a set of offsets unlikelyto harmonically interfere, or that do not share common factors. In thismanner, the robot may encounter several emission paths at once yetdiscern the identity of each. In other instances, each transmittedemission may be differentiated by different wavelengths of light,infrared modulations, and wavelength filters/windows on the emitters andreceivers.

The robot 212 may use RF communication to signal to beacon 202 toremotely activate directed emission 216 and deactivate gateway emission208 upon initiating the migration mode. In another example, the robot212 may remotely deactivate the directed vectoring emission 216 andactivate gateway emission 208 upon exiting the migration mode.

In some instances, the robot 212 may activate a gateway emission 226separating bounded areas 206 and 207 and initiate the cleaning mode.Similarly to that described above, the robot 212 may be prevented fromleaving bounded area 206 when it encounters gateway emissions 208 and226. When finished cleaning in bounded area 206, the robot 212 mayinitiate the migration mode and navigate through gateway 228 byfollowing directed emission 230 to a perimeter 234 of a proximityemission 232 and enter bounded area 207. Once in bounded area 207, therobot 212 may re-enter the cleaning or working mode. After, forinstance, a set time period or preset number of encounters with gatewayemission 208, the robot 212 may migrate from bounded area 204 to boundedarea 206.

Alternatively, a virtual wall emitter (gateway) may be set toindependently deactivate itself on a schedule to permit the robot tocross the gateway, e.g., acting as a virtual wall for a first interval(to confine in a first or current room), then deactivating temporarilyor intermittently, then acting as a virtual wall for a second interval(to confine in a second or successive room). This technique may also beinteractive, e.g., the robot may use RF communication with one or morebeacons to deactivate a virtual wall or bypass/cross a virtual wall.

It should be noted that in all instances herein, the robot's behaviorsystem is arranged such that obstacle events, including cliff detectionevents, have a higher priority than any room-to-room navigation orcleaning. Accordingly, for example, when the robot encounters a cliffdetection in the middle of a navigation or other set of sequencedbehaviors, the robot may nonetheless avoid the cliff (aborting thecurrent part of the sequence and resetting the state of the sequence).

FIG. 23 shows a set of rooms similar to FIG. 22, but arranged (with theaddition of a base station) to illustrate the situation in which therobot encounters multiple beams from two beacon emitters and also from adock 240. Using the strategies avoiding beam confusion noted above, therobot 212 may nonetheless navigate from room to room or the robot 212may autonomously initiate a docking mode to maneuver towards the basestation 240 in bounded area 206 and dock with the station upontermination of the migration mode in the second area.

The base station 240 may include a base, a robot charger, anomni-directional beam emitter and two navigational field emitters and besimilar to the base station 180 described above. The robot 212 maymaneuver towards base station 240 by detecting and advancing along oneof the lateral field edges 242 or 244 of the overlapping fields 246, 248aligned with the docking direction until docked with the station 240.

The robot 212 may detect the emissions of base station 240 withomni-directional receiver 222 on the robot and maneuver to detect anouter lateral field edge (e.g. 247) of at least one field emission 246or 248. The robot 212 may then advance along outer lateral field edge247 or 249 to the aligned lateral field edge 242 or 244 of theoverlapping fields. Upon detecting the aligned lateral field edge 242 or244, the robot 212 advances along the aligned lateral field edge 242 or244 until docked with base station 240.

FIG. 24A is a block diagram showing a behavioral software architecturewithin a controller 250, in which goal-oriented or sequenced behaviorsare depicted in simplified form. FIG. 24B shows the same softwarearchitecture, but provides more detail on the goal-oriented or sequencedbehaviors while simplifying some of the elements of FIG. 24A.

While embodiments of the robot discussed herein may use behavioral basedcontrol only in part or not at all, behavior based control is effectiveat controlling the robot to be robust (i.e. not getting stuck orfailing) as well as safe. Accordingly, FIGS. 24A and 24B depict asoftware architecture that permits improved control of a mobile robot.Rather than being a purely reactive architecture, FIGS. 24A and 24Bintroduce an element of planning that is partially reactive (andtherefore more robust)—goal oriented, sequenced reactive behaviors.

In the reactive yet sequenced behaviors, the implied success of arelated behavior in a sequence is an enabling condition (among others)for each behavior beyond the initiating behavior in the sequence (somesequences may have more than one initiating behavior or branches). Theimplied success is kept as a state signifying an enabling condition of asuccessive behavior, in the form of a flag, state machine, or the like.The state may be set or changed by a behavior itself upon completion, byan arbiter process, or by a planning process.

Referring to FIG. 24A, the robot 302 employs a control and softwarearchitecture that has a number of behaviors that are executed by anarbiter 252 in controller 250. A behavior is entered into the arbiter252 in response to a sensor event, or a sequence state event from theplanner 253. In one embodiment, all behaviors have a fixed relativepriority with respect to one another. The arbiter 252 (in this case)recognizes enabling conditions, which behaviors have a full set ofenabling conditions, and selects the behavior having the highestpriority among those that have fulfilled enabling conditions. Thediagram shown in FIGS. 24A and 24B does not necessarily reflect the(fixed) priority hierarchy of the robot 302. In order of decreasingpriority, the behaviors are generally categorized as escape and/oravoidance behaviors (such as avoiding a cliff or escaping a corner),working behaviors (e.g., wall following, bouncing, or driving in astraight line), and for the purposes of this application, sequencedreactive behaviors. The behaviors may include: different escapebehaviors 255, 255 a, 255 n (including escaping corners, anti-canyoning,stuck situations, “ballistic” temporary fire-and-forget movement thatsuppress some avoid behaviors, e.g., as disclosed in U.S. Pat. No.6,809,490, the entire contents of the which are hereby incorporated byreference) cliff avoiding 256, virtual wall avoiding 258 (a virtual wallmay be a beacon with a gateway beam), other avoidance 258 n as a class(e.g., avoiding people via a pyrometer, in general the class ofdetecting and moving away from something that is a hazard to the robot302 or to which the robot 302 may be a hazard), spot coverage 264 a(covering in a confined pattern such as a spiral or boustrophedonpatch), align 264 b (turning in place, using side proximity sensors toalign with a forward obstacle encountered while obstacle following,e.g., an inside corner), following 264 c (representing either or both ofsubstantially parallel or bump following along an obstacle using a sideproximity sensor or bumper that extends to the side of the robot),responding to a bump in order to “bounce” 264 d (a behavior that occursafter the robot bumps an object), and drive 266. Movement of the robot302, if any, occurs while a behavior is arbitrated. If more than onebehavior is in the arbiter 252, the behavior with a higher priority isexecuted, as long as any corresponding required conditions are met. Forexample, the cliff avoiding behavior 256 will not be executed unless acliff has been detected by a cliff detection sensor, but execution ofthe cliff avoiding behavior 256 always takes precedence over theexecution of other behaviors that also have satisfied enablingconditions.

The reactive behaviors have, as their enabling conditions or triggers,various sensors and detections of phenomena, but, in general, not(arbitrary) states of a sequence. As shown in FIG. 24A, these includesensors for obstacle avoidance and detection, such as forward proximitydetection (multiple), forward bump detection (multiple), cliff sensors(multiple), detection of a virtual wall signal (which may instead beconsidered a coverage trigger). Sensors of these types are be monitoredand conditioned by filters, conditioning 292 c, and their drivers 292 b,which can generate the enabling conditions as well as record data thathelps the behavior act predictably and on all available information(e.g., conversion to one-bit “true/false” signals, recording of likelyangle of impact or incidence based on strength or time differences froma group of sensors, or historical, averaging, frequency, or varianceinformation).

Actual physical sensors may be represented in the architecture by“virtual” sensors synthesized from the conditioning and drivers.Additional “virtual” sensors that are synthesized from detectable orinterpreted physical properties, proprioceptive or interpreted upon therobot 302, such as over-current of a motor, stasis or stuck condition ofthe robot 302 (by monitoring a lack of odometry reading from a wheelencoder or counter), battery charge state via coulometry, and othervirtual sensors “virtual N.”

In addition, reactive behaviors can act according to enabling conditionsthat represent detected phenomena to be sought or followed. A beam orwireless (RF, acoustic) signal can be detected without direction; or insome cases with direction. A remote beam or marker (bar code,retro-reflective, distinctive, fiducial, or natural recognized by visionlandmark) giving a direction can permit homing or relative movement;without direction the robot 302 can nonetheless move to servo on thepresence, absence, and/or relative strength of a detected signal. Thereflection of a beam from the robot 302, edge, or line can be similarlydetected, and following behaviors (such as obstacle following by therobot 302) conducted by servoing on such signal. A debris or artifactsignal can be collected by monitoring debris or objects collected by ortraversed by the robot, and that signal can be an enabling condition fora reactive behavior controlling a spot coverage pattern. A general classof “seek/servo N” signals are thus also reactive behavior enablingconditions or triggers.

The robot 302 maintains concurrent processes, “parallel” processes thatare not generally considered reactive behaviors. A scheduler 292 d maybe necessary to allocate processor time to most other processes, e.g.,including the arbiter and behaviors, in a co-operative or othermultitasking manner. If more threading is available, less processes maybe managed by the scheduler 292 d. As noted, filters and conditioning292 c and drivers 292 b, can interpret and translate raw signals. Theseprocesses are not considered reactive behaviors, and exercise no directcontrol over the motor drives or other actuators. In addition, in thepresent embodiment, brush motor controller(s) 292 a control the main andside brushes, although these may alternatively be controlled bydedicated brush behaviors and a brush control arbiter.

With reference to FIG. 24B (the same representation as FIG. 24A, withother areas of the drawing emphasized/deemphasized for clarity), aspecial concurrent process is a sequence planner 253. The sequenceplanner 253 is capable of monitoring and/or maintaining state in orderto control sequenced reactive behaviors, e.g., setting enablingconditions (that will be caught by the arbiter 252), and/or resettingstates in the case of abort conditions (e.g., time-outs, escape oravoidance behavior execution), and/or monitoring or supervising finitestate machines that themselves transition between states. It should benoted that enabling condition states or flags or supervised statemachines that request a transition between sequential reactive behaviorscan be set by a behavior itself, by the arbiter, or by the sequenceplanner 253, depending on efficiencies and circumstances. It should alsobe noted that the sequence planner 253 may optionally be capable ofdirectly controlling the arbiter 252 (or second arbiter 252A) to prefer(e.g., re-prioritize) a behavior or directly control a sequencedreactive behavior without setting an enabling condition, state variableor state machine.

While maintaining state is recognized to potentially reduce therobustness of competent reactive control architecture, sequences ofintended actions may require the maintenance of some state. As discussedherein, if sequenced reactive behaviors are controlled to execute usingrequest states which may be robustly reset or erased without primaryfunction failure, the reduction in robustness can be reduced.

One exemplary sequenced reactive behavior set is employed by the robot302 to transition between rooms or navigate to a distal room. Asdepicted in FIG. 24B, a homing beam align behavior 294 a includes anenabling condition that an align start (e.g., a homing request) enablingcondition be activated, and that the beam to be homed upon is detectedby a multi-directional sensor. As will be discussed below, the homingrequest enabling condition can be set and maintained in different ways.A homing beam homing behavior 294 b is to execute once alignment issuccessful. However, because alignment may happen serendipitously (therobot may already be aligned when the homing request is activated), thehoming beam homing condition also has as an enabling condition thehoming request (flag or state), as well as a detection using adirectional sensor (binoculars) that substantially necessarily directedat the beam identified as one to be homed upon (or, e.g., filtered to beequivalent to such a detection). Accordingly, two sequenced reactivebehaviors are each separate entry points to the sequence, and share acommon reactive sequence request enabling condition. When a sensor-basedenabling condition fails, these behaviors are aborted (internally or bythe planner 253) and the sequence request remains active (or may bereset). In this case, the sequence may be restarted the next time eithersensor-based enabling condition occurs. Optionally, a random component(such as a random distance or time return to random coverage, whiledisabling the sequence request or homing request enabling condition) ispermitted to occur following an abort of a sequential reactive behaviorin order to decrease the likelihood of systematic failure or looping.

After the homing beam homing behavior 294 b has completed, the sequenceis in a state where an assumption is made regarding the state that therobot is located appropriately to align with the field to permit beginfield following about a beacon to transition to a new chamber. A (new)align start enabling condition (e.g., field align state or request) maybe set by the completing sequenced reactive behavior or by the planner,via condition flag or state machine. In order to accommodate thepossibility that the field may be the first detectable signalencountered upon initiation of the homing request, the detection of theproximity field by the multi-directional receiver is an equivalent (OR)condition to the field align request, if the homing request is activewhen the field is encountered, this combination also should initiatefield align behavior 294 c. If there are no abort conditions, the fieldalign behavior 294 c executes. After the field align behavior 294 c hascompleted, the sequence (of sequenced reactive behaviors) is in a statewhere a next assumption is made regarding the state—that the robot isoriented appropriately to begin field following. A (new) follow startenabling condition (e.g., field follow state or request) may be set bythe completing sequenced reactive behavior or by the planner, viacondition flag or state machine. Similarly, the launch behavior 294 emay have as a primary enabling condition a state-based request ratherthan a sensor detection. Each of these behaviors 294 a, 294 b, 294 c,294 d, 294 e is detailed herein below.

In two of these cases, optionally, a state to enter the entire sequence(homing request) is maintained and an additional state to begin a nextpart of the sequence (field follow request; launch request) is set andboth conditions are necessary to start the next sequenced reactivebehavior. This would permit restarting the sequence immediately after anabort (by maintaining the entire sequence request state). Alternatively,the entire sequence entry request is reset and the only the nextsequenced reactive behavior entry condition is set (field align requestor field follow request). This would cause the entire sequence to beotherwise restarted (e.g., by a new or continued occurrence ofconditions that would cause the planner to set the sequence request)after an abort, which could improve general robustness (although notnecessarily goal-specific robustness) by erasing essentially all states.

In two cases, no sensor-based condition is an enabling condition for thenext sequenced reactive behavior in the sequence, but an enablingcondition is a sequence-based or a state-based request—e.g., fieldfollow request, launch request. Accordingly, a sequence may includesequenced reactive behaviors that include only sequence states orprogress as enabling conditions for the next sequenced reactive behavior(such as the field follow behavior, or launch behavior), as well assequenced reactive behaviors that include both sensor-based conditionsand sequence states, progress or requests as enabling conditions (suchas the beam align or tractor homing behaviors).

In one case, a state to enter the entire sequence (homing request) ismaintained and either a sensor-based condition or a sequence-basedrequest is an enabling condition for a next sequenced reactive behavior(field align) in the sequence—e.g., a homing request AND (field alignrequest OR field detection) is interpreted by the arbiter to permitfield aligning if no reactive behaviors have higher priority.Accordingly, a sequence may include sequenced reactive behaviors thatinclude either a combination of sequence state/requests, or bothsensor-based conditions and sequence request/states, as enablingconditions for a next sequenced reactive behavior.

It should be noted that entry and mid-sequence branching is possible byenabling different behaviors depending on different combinations ofsensor-based conditions and sequence states. For example, just as twopossible entry points into the sequence are permitted by detectingdifferent sensor events (multi-directional or directional) at the sametime as a common entry point enabling condition (homing request),branches in the sequence to different next sequenced reactive behaviorsare permitted by detecting different sensor events at the same time as acommon mid-sequence enabling condition (e.g., candidate behaviors eachenabled by a unique combination of sensor event and sequence state).Optionally, if different sequences each are maintained with differentstates, different mid-sequence state combinations permit nesting ofsequences (candidate behaviors each enabled by a unique combination).

Sequence planner 253 optionally maintains a navigation mode state switchor finite state machine 243 a, and/or such states or requests aremaintained separately (e.g., follow start, follow done).

As shown in FIG. 24B, the planner 253 may control differentgoal-oriented sequences 1-N, each having more than one sequencedreactive behavior therein. The behaviors therein can have as initialconditions a goal state, entry request, or other state, that the arbiter252 identifies as requiring rendering a candidate behavior available forexecution. Initial behaviors of a sequence may require a sequencerequest; subsequent behaviors may require either a next sequencedreactive behavior request (or, in addition, the sequence request aswell).

The sequenced behaviors are “reactive” despite being dependent uponsequence state at least because they may be subject to the same arbiter252 as the reactive behaviors, and/or react to sequence states asenabling conditions in the same manner as reactive behaviors react toreal-time sensor events, and/or are prioritized lower than at leastescape and avoidance behaviors. In addition, the states may be whollyreset to restart a reactive process. Even when a sequence or nextsequenced reactive behavior's enabling conditions are satisfied, areactive behavior that also has enabling conditions satisfied andpreserves continuous autonomous operation will be executed instead.Reactive docking behaviors, which generally permit the robot to returnand recharge for continued autonomous operation, may be prioritizedhigher than, in particular, navigation-related sequenced reactivebehaviors. Reactive coverage behaviors may be prioritized belownavigation sequenced reactive behaviors, in particular. Some portions ofthe docking behaviors noted herein are alternatively arranged assequenced reactive behaviors; or other sequences are possible.Beacon-based navigation as discussed herein is an example of oneimplementation of combining sequenced reactive behaviors withnon-sequenced reactive behaviors.

As shown in FIG. 24B, a second arbiter 252 a may supervise a sequence ofsequenced reactive behaviors (e.g., in combination with the sequenceplanner 253); or a master arbiter (not shown) may supervise a firstarbiter (e.g., 252) of reactive behaviors and a subsequent arbiters(e.g., 252 a) of different sequenced reactive behaviors.

As shown in FIG. 24B, for a navigation application in particular, thesequence planner 253 may include, monitor, or maintain location state inthe form of a topological state map or its equivalent with respect tothe environment in which the robot operates. Using beacons, this may bea topological map having nodes and links, in which the nodes may berooms (links thereby being gateways or beacons) or gateways (linksthereby being sides of the gateway). A primary use of the location stateis to provide a homing beam or homing fiducial identity to the arbiteror to the sequenced reactive behaviors. If provided to the arbiter, thearbiter may recognize a sensor-based enabling condition (e.g., beamdetection) for a behavior only when the beam has the correct identity(encoding) for the location state. Alternatively, the behavior itselfexamines the identity or encoding of a received enabling condition(e.g., beam detection). An abort condition can result if beacons havebeen rearranged or the like, and this abort condition can causeblacklisting of a beacon or fiducial or a reset of the map (new mappingneeded). In either case, the robot 302 continues to provide coverage andall other remaining reactive behaviors in the local area. The locationstate is used by the planner 253 to successively execute sequences ofsequenced reactive behaviors in order to traverse a distance to or froma remote or distal room (for returning from the dock for charging; fordirectly proceeding to a remote or distal chamber from the dock); andpermits the same sequenced reactive behaviors to be used for navigationin different directions (so long as the location state is maintained) byproviding the identities of the guiding fiducials or beams in thecorrect order for a navigation direction, depending on the direction tobe traveled on the topological map.

One candidate routine maintained/executed by the planner 253 is shown inFIG. 25A. The elements of this routine are not necessarily in order(e.g., different states may be checked out of the depicted order). Theplanner routine monitors (502) a goal-oriented or sequence initiatingcondition. As discussed, this may be a variable that keeps track of atime, distance, cleanliness measure, history of obstacle interactions,or other criterion that, when satisfied, indicates that a plannedsequence (such as navigation from room to room) is to be carried out.The condition may be a state, flag or state of a finite state machine.If such a condition exists (504), the planner checks (506) the state ofthe robot along the called for sequence, if the planner maintains such asequence state. For example, the planner 253 may maintain or monitor thecurrent state of a state map or finite state machine defining states ofthe beacon crossing sequence, as shown in FIG. 25B (in which “aligningto launch”, “homing”, “aligning after homing”, and “following field”states are available); alternatively a state map or finite state machinemay be instantiated. The planner 253 may additionally or in thealternative set (508) behavior enabling conditions for entry into asequence, such as a homing request as discussed herein, or an entiresequence entry behavior enabling condition and/or next sequencedreactive behavior enabling condition. The planner 253 may additionallyset (510) guiding variables for the behavior or arbiter to recognize(e.g., such as the identity of a beam to be followed or fiducial to behomed upon or bearing to proceed in), according to, e.g., the state of amap identifying such (e.g., as shown in FIG. 25C, according to the stateof a map defining which beam A or B—“green” or “red”—oflighthouses/beacons X, Y, Z connects to which rooms 1, 2, 3 and a dock,and according to the next goal room defined by the planner 253). Theplanner 253 may additionally monitor abort conditions (512, e.g., timeout, interruption by a reactive avoidance or escape behavior) ofsequenced reactive behaviors in progress, and set or reset the state ofa sequence and/or the state of a map upon such an abort (althoughbehaviors may also set or reset these internally before aborting).

After the robot 302 has detected a specified cleaning period has elapsedor the robot 302 has detected a specified number of bumps or the robothas detected a specified condition requiring a set of sequencedbehaviors, the sequence planner 253 executing on the controller 250 willdecide to exit the cleaning mode and enter the migration mode. The robotmay also enter the migration mode right from the dock, in order toproceed to a distal or remote room in order to begin cleaning there. Themigration mode executes the task of moving from one room to an adjacentroom. As discussed above, the migration mode is advantageously not amonolithic process, but is a succession of sequenced reactive behaviorsstarted by an initial behavior—that has an enabling condition of amigration mode request (also discussed herein as a “homing request”).The planner 253 will raise a “new room”/homing request enablingcondition, state, or flag. The remaining enabling condition is a sensordetection of a guiding tractor beam (optionally, limited to one beamidentified according to the location state 253 b as originating with thelighthouse/beacon to be homed upon), which, when the beam is detected(substantially immediately if the robot is in the beam, or after therobot encounters the beam as it continues the coverage behaviors havingsatisfied enabling conditions), triggers the homing beam—align behavior294 a to be selected by the arbiter 252 for execution. The robot 302performs the task of migrating from one bounded area to an adjacentbounded area by executing the homing beam—align behavior 294 a while atthe same time possibly executing the cliff avoiding 256 (on any occasionwhen any cliff detector fails to see the floor—i.e., the enablingcondition of the higher priority & reactive avoidance behavior is alsosatisfied) and drive 266 behaviors (e.g., if an abort condition resetsthe sequence). When multiple behaviors are trigged by sensor inputs orthe planner 253, the arbiter 252 will arbitrate the behaviors in orderof priority. That is, the arbiter may also arbitrate among differentsequences of reactive behaviors, or the planner may only start onesequence. The beacon crossing sequence 262 has five sequenced reactivebehaviors, beginning with the homing beam—align behavior 294 a, whichare executed or sequentially based on controller inputs as discussedherein. If the robot 302 experiences a signal input (such as a bumpsensor input) that requires execution of a behavior having a higherpriority, the robot 302 will execute the behavior of higher priority andafterwards, upon the presence of the necessary enabling conditions, mayreinitiate a previous sequence of reactive sequenced behaviors.

FIGS. 31A-G are overhead views showing a behavior based autonomouscoverage robot 302 as it uses a navigation beacon 304 to migrate fromone area to another. FIGS. 26-30 are diagrams illustrating the beaconcrossing sequenced reactive behaviors 262, including beam aligning 294a, beam homing 294 b, field following 294 c, field aligning 294 d, andleaving beacon 294 e behaviors.

The beacon crossing sequence 262 commences by entering the beam homing294 b or beam aligning behaviors 294 a, depending on a robot positionwithin the first bounded area in relation to the beacon 304. Generally,the robot 302 will initiate a maneuver to detect with itsomni-directional receiver 104 the first directed beam 306 from thenavigational beacon 304 into a first area (e.g. turning 360 degrees ordriving in a circle).

FIG. 26 depicts the beam align behavior 294 a. As shown, the arbiter 252will not permit the beam align behavior 294 a as a candidate (i.e., tobe prioritized with other behaviors with satisfied enabling conditions)at least until a homing request state or request is present, as well asthe directional or tractor beam 306 is received by the multi oromni-directional sensor 322 of the robot 302, as behavior enablingconditions or triggers. To permit execution, no higher prioritybehaviors (e.g., reactive behaviors) have satisfied enabling conditions.This tractor or directed beam 306 may be limited to one expected at thepresent location of the robot 302 on the state map (e.g., by respondingonly to a beam having an identity or encoding corresponding to thecurrent map state). Once these are satisfied, the arbiter 252 permitsthe beam align behavior 294 a to execute. If either condition is nolonger satisfied, the behavior may abort. As noted in FIG. 26, abortconditions (e.g., including missing behavior enabling conditions;time-out; or displacement by a higher priority behavior) may bemonitored by the planner 253, which may also keep states reflecting theprogress of the sequence as well as the location of the robot 302. Thebeam align behavior 294 a turns or pivots the robot 302 essentially inplace (522), starting in a random direction. A likely beam direction mayalso be maintained as a state, e.g., based on past beam detectionsmonitored by, e.g., a concurrent process, and if so, the turningdirection may be the one expected to be shorter. Once the directionalreceiver 318 senses the directed beam 306 (524), the behavior ends.There is no need to set a state as a request for the beam homingbehavior 294 b likely to follow, as the robot 302 will, so long as thehoming request is active, continue to attempt to align and home when thecorrect beam is encountered and either is a valid entry point for thesequence. Later stages of the sequence are mid-sequence, and may usesuch states. Accordingly, the beam align behavior 294 a is an example ofchoosing not to set a state in order to maintain a higher level ofreactive control and likely robustness.

FIG. 31A shows the robot 302 during readiness for and execution of thebeam align behavior 294 a, as it encounters a first directed beam 306emitted by a navigation beacon 304, when a homing request from theplanner 293 is active. Upon detecting the first directed beam 306, therobot 302 commences the beam aligning behavior 294 a. During beamaligning 294 a, the drive system 130 maneuvers (e.g., by turning inplace, e.g., starting in a random direction) the robot 302 to detect thefirst directed beam emission 306 with the directional receiver 318,which is to be aligned with a robot drive direction. By using thesignals from the two component receivers 114, 116 of the directionalreceiver 318, the robot 302 aligns the drive direction with the directedemission 306 of the beacon 304. FIG. 31B shows the robot 302 as itdetects beam 306 with the omni-directional receiver 322 and turns toface beacon 304.

After the robot 302 has aligned the drive direction with the directedemission 306 of the beacon 304 by using the directional receiver 106,the robot may commence the beam homing behavior 294 b.

FIG. 27 depicts the tractor or directed beam homing behavior 294 b. Asshown, the arbiter 252 will not permit execution (of the highestpriority candidate) until at least a homing request state or request isactive, and the directional or tractor beam 306 is received by thedirectional sensor 318 of the robot 322 as behavior enabling conditionsor triggers. This tractor or directed beam 306 may again be limited toone expected at the present location of the robot 302 on the state map.Once these are satisfied, the arbiter 252 may permit the beam homingbehavior 294 b to execute. If either condition is no longer satisfied,the behavior 294 b may abort. As noted in FIG. 27, abort conditions andresulting states may be supervised by the planner 253. The tractor ordirected beam homing behavior 294 b follows the directed beam emission(532). One exemplary way of following is using alternating curves. Eachparallel sensor 114 and 116 of the directional binocular sensor 318 isconditioned to return a one bit true-false value reflecting beampresence, based on signal strength (e.g., independently thresholded, orthresholded with respect to one another). As the robot 302 turns towardand away from the beam 306, beam detections of true-false, true-true,and false-true are possible (conditioning may also limit thepossibilities to true-false and false-true). A “bang-bang” servoing maybe used to change turning direction as the robot 302 moves forward. Eachturn is an arc with decreasing radius, i.e., part of an inward spiral.Alternatively, analog values may be maintained and more complex feedbackcontrol employed. The following (532) may alternatively employ thefrequency and variance tracking discussed herein with respect to dockingto determine that the robot is proceeding in the correct direction andmove forward in a straight line. Once thenon-directional/omni-directional receiver 322 senses the directed beam306 (534), the behavior is ready to end. A state is to be set tocontinue the sequence of sequenced reactive behaviors—i.e., a fieldaligning request. The behavior 294 b may set this state itself (536),e.g., as a flag in memory; or the planner 253 may monitor that thebehavior 294 a is complete and set such a flag or state in a finitestate map or machine.

The behavioral sequence, as discussed, permits the robot 302, afterinitiating the beacon crossing sequence 262, to skip the beam aligningbehavior 294 a if the directional receiver 318 already detects thedirected beam emission 306 and is already aligned with the directed beamemission 306. Abort conditions may prevent these and permit laterrestarts. As discussed herein, a combination of reactive behavior basedcontrol and sequenced reactive behavior control is advantageous.However, some embodiments discussed herein do not necessarily excludeother reactive or non reactive techniques. While executing the beamhoming behavior 294 b, the robot 302 moves towards the navigationalbeacon 304 while maintaining its alignment with (e.g., servoing upon)the directed beam 306 in response to the signals of the directionalreceiver 318. FIG. 31C shows the robot 302 approaching the navigationbeacon 304. As the robot 302 follows the edge 320 of the beam 306, therobot 302 adjusts its course as shown by arrows 308. As shown in FIG.31C, the robot 302 stops moving towards the beacon 304 when itencounters a proximity field emission (or “force field”) 310 projectedlaterally from beacon 304 in all directions.

As an alternative behavior that would be suitable as part of thesequenced reactive behaviors, if the directional receiver 318 isselected to be more sensitive (e.g., by collimation and confinement) atremote distances than the omni-directional receiver 322, the directionalreceiver 318 may receive the force field emission 310 even though theomni-directional sensor 322 does not. In this case, the directionalsensor 318 may be used to alternatively home on the force field emission310. In this case, an alternative behavior is provided in the sequence,identical to the tractor homing behavior 294 b except that thesensor-based enabling condition is that the force field 310 is seen inthe directional sensor 318; and the homing is on this emission 310. Asan example of behavioral robustness, this behavior may be arbitrarilyadded to the sequence of reactive behaviors without changing any otherbehavior or disrupting any other process, with a priority above or belowthe existing tractor homing behavior 294 a depending on empiricalevidence that one or the other tended to be more reliable.

Upon detecting the proximity field 310, the robot 302 executes the fieldaligning behavior 294 c. FIG. 28 depicts the field align behavior 294 c.As shown, the arbiter 252 will not permit execution (of the highestpriority candidate) until at least a homing request state or request isactive, and either a field align request is active, or the proximityfield 310 is seen in the non-directional sensor 322 (this latterpermitting the behavior sequence to advance to field aligning 294 c whenthe robot 302 fortuitously “stumbles” into the proximity field 310before encountering the directed beam 306). The field may again belimited to one expected at the present location of the robot 302 on thestate map. Once these are satisfied, the arbiter 252 may permit thefield align behavior 294 c to execute, abort conditions supervised aspreviously noted by the planner 253. The field align behavior 294 cturns or pivots the robot essentially in place (544). A likely beamdirection may be determined according to the beam identity (e.g., facingthe dock 340, following a left beam 350 to the dock 340 likely means therobot 302 should turn clockwise, following a right beam 360counterclockwise) or other state or information. The robot 302 may turnin the direction expected to be shorter or randomly. Once the omni ornon-directional receiver 322 senses the directed beam 306 (546), thebehavior 294 c ends. Optionally, the behavior 294 c does not end untilan additional condition is satisfied—that the directional beam 306 isnot present in the directional receiver 318 (which increases thelikelihood that the robot 302 is rotated transversely to the dock 340).A field follow request is to be set to continue the sequence ofsequenced reactive behaviors, as discussed, by the behavior itself(548), by the planner 253, or otherwise.

Accordingly, as shown in FIG. 31D, the robot 302 can detect theproximity field 310 with the directional receiver 318, as when the robot302 is facing the beacon 304, the robot 302 will initiate a pivotmaneuver (e.g., turn in place for differential drive robots having drivewheels on the center diameter or holonomic drives or highly steerablerobots, turn substantially in place for other configurations) alteringthe robot drive direction to the right or left toward the other directedbeam 314, based on the beam encoding of the first directed beam 306. Therobot 302 stops the pivot maneuver when it no longer detects theproximity beam 310 with the directional receiver 106.

The robot 302 may encounter the proximity field 310 before encounteringthe directed beam 306. In this case, the robot 302 does not execute thebeam aligning or beam homing behavior, 294 a and 294 b, respectively.Instead, the robot 302 recognizes the encoding of the proximity field310 and executes the field aligning behavior 294 d.

When the robot 302 no longer detects the proximity field beam 310 withthe directional receiver 218, the robot 302 executes the field followingbehavior 294 c.

FIG. 29 depicts the field following behavior 294 d. As shown, thearbiter 252 will not permit execution (of the highest prioritycandidate) until at least a homing request state or request is active,and a field follow request is active. As noted, this may be limited tosimply the field follow request if the sequence is to be more readilyabandoned to preserve robustness. The field is optionally limited to anexpected one. Once these are satisfied, the arbiter 252 may permit thefield follow behavior 294 d to execute subject to abort conditions. Thefield follow behavior 294 c follows the edge 312 of the proximity fieldemission 310 (554) using alternating, decreasing radius curves aspreviously discussed. The non-directional sensor 322 may be conditionedto return a one bit true-false value reflecting beam presence, based onsignal strength. Once the non-directional/omni-directional receiver 322senses the next directed beam 314 (534), i.e., the launch beam (thisdetection limited to the expected beam of the beacon 304 followed and/oraccording to the location state of the robot 304), the behavior is readyto end. Optionally, the behavior 294 d further checks and proceeds untilthe directional receiver 318 does not sense the launch beam 314 (whichtends to exclude those cases in which the omni-directional detector 322detects a launch beam 314 too early via a reflection from a highlyreflective surface, such as a nearby white door or wall corner). A stateis to be set to continue the sequence of sequenced reactivebehaviors—i.e., a launch request. The behavior 294 c may set this stateitself (558), or the planner 253 may control this.

As shown in FIG. 31E, during the field following behavior 294 d, therobot 302 maneuvers in an resultant arc around the beacon 304 whilefollowing an edge 312 of the proximity beam 310 via omni-directionalreceiver 322. The robot 302 follows the edge 312 of the force field 310by monitoring the received signal strength of the force field emission310 on the robot's emission sensors 318 and 322. One example of the arcmaneuver entails the robot 302 “zigzagging” back and forth (e.g.,“bang-bang” servoing or following using a one-bit true-false detectionand forward motion in initially arced, steadily decreasing turn radius,e.g., spiraling in) along the edge 312 of the proximity beam 310, wherethe robot 302 detects entering and exiting the field of emission of theproximity beam 310 with the omni-directional receiver 322. In anotherexample, the robot 302 follows the edge 312 of the force field by usinga PID control system based on the time in the force field 310 or thetime out of the force field 310. The PID control system controls the arcof the robot 302. The robot 302 executes the maneuver at a reduced speed(e.g., less than 50% of coverage speed) for both drive wheels 132 and134, so that both drive wheels 132 and 134 are being driven in a forwarddirection. This facilitates easier traversing of transitions andthresholds. The robot 302 passes through the area normally covered by agateway beam 316. The robot 302 continues to follow the edge 312 of theproximity beam 310 until the omni-directional receiver 322 detects thatthe robot 302 has entered the second directional beam 314 and thedirectional receiver 318 no longer detects the second directed beam 314,as shown in FIG. 31E. As noted, satisfying both criteria helps preventthe robot 302 from detecting reflected beam emissions off of adjacentobjects, such as a white door.

FIG. 29 depicts the launch behavior 294 e. As shown, the arbiter 252will not permit execution (of the highest priority candidate) until thelaunch request is active, and may also require the homing request. Thelaunch behavior 294 e assumes a last position with the omni-directionaldetector 322 in the launch beam 314 and a bearing substantiallytransverse to the launch beam 314, and curves away from the field314/beacon 304 in the approximate direction of the launch beam 314(e.g., facing the dock 340, if the robot 302 has traversed left toright, curving clockwise, and if the robot 202 has traversed theopposite direction, curving counterclockwise). Optionally, the robot 302may try to stay within the launch beam 314 by servoing to return to thelaunch beam 314 when the launch beam 314 is not detected in theomni-directional sensor 322. After a predetermined time (e.g., 5 s) ordistance (e.g., 1 m) or obstacle encounter, the behavior is ready toend. At this point, the planner 253 may terminate the homing request(and, e.g., updating the location state of the topological map as wellas clearing or resetting a navigation mode state if one is kept), andthe reactive behaviors will begin the robot's coverage work in thesubsequent chamber (or, if the battery is to be charged, this mayinitiate another homing request in the direction of the dock accordingto the location state of the map). The planner 253 may also immediatelyinitiate another homing request; or reset variables of the currenthoming request according to the location state of the map such that therobot 302 will proceed from room to room to room, e.g., moving directlyto or from a distal or remote room.

That is, as shown in FIG. 31F, upon completing the field followingbehavior 294 c, the robot 302 may execute the leaving beacon behavior294 e, as shown in FIG. 30, which entails the robot 302 moving away fromthe beacon 304. Alternatively, this can be performed as a pivot andlaunch, and/or guided by the launch beam 314 and omni-directionalreceiver 322, e.g., FIG. 31G shows the robot 302 turning away fromnavigation beacon 304 to face a second area as the robot 302 passes theedge of directed beam 314. If the robot 302 detects the second directedbeam emission 314 with the omni-directional receiver 322, the robot 302maneuvers away from the beacon 304. If the robot 302 does not detect thesecond directed beam emission 314 with the omni-directional receiver322, the robot 302 moves in a forward direction as shown in FIG. 31Hwithout turning in order to avoid arcing back into the gateway. Anotherexample of the leave beacon behavior 294 e includes the robot 302aligning itself in a particular direction using odometry (or a nextbeacon in a sequence, e.g., when the planner 253 includes a distal orremote room traversal sequence that restarts the sequence of behaviorsat beam align with a next beacon's beam or field according to the map)and moving in that direction without guidance from any of the beamsemitted from the current beacon 304. FIG. 31G shows the robot 302 movingaway from navigation beacon 304 as it finishes migrating.

While migrating, the robot 302 stores in memory the beam encodings ofthe first and second directed beams 306 and 314, respectively, at eachnavigational beacon 304 encountered while away from a base station 340.To return to the base station 340, the robot 302 conducts coveragebehaviors while the homing request is on, resulting in discovering theappropriate directed beams 306 and 314, respectively, and correspondingencodings, to follow a sequence of encountered beams back to the basestation 340. In one example, the robot 302 can wirelessly communicate(e.g. radiofrequency) with the navigational beacons 304 to independentlyactivate each previously encountered beam 306, 314, and 316 one at atime to find (traversing a room using random bounce and/or obstaclefollowing to place itself in a beam path) and follow each beam back tothe base station 340.

In another example (not shown), navigation beacons may emit at leastone, two, or three beam signals: fence/gate beam (referred to herein as“yellow”, but in reality having a first modulation of a first frequencyin the IR band), right-hand navigation beam (referred to as “red”, butin reality having either or both of different modulation or a differentfrequency in the IR band from the “yellow” beam), and left-handnavigation beam (referred to as “green”, but in reality having either orboth of a different modulation or a different frequency in the IR bandfrom the “yellow” and “red” beams).

If multiple navigation beacons are provided, each would have differentmodulation of its beams, but the emitters of the fence/gate beam, righthand beam, or left hand beam would preferably be consistent among thenavigation beacons.

Regardless of its assignment as fence, gate, or trail marker, as oneexample, a navigation beacon also may emit a geometrically determinedforce field (“blue”, again in actuality either or both of a differentmodulation or frequency in the IR band, although a force field couldalso be radio frequency RF rather than visible or IR light) in acircular region around their base. This may identify its presence to arobot, and allow a robot to follow a path around the Navigation beacon(through a gate or past a trail marker), for example.

An IR-based beacon system can be designed to use a geometric solution,similar in certain respects to a non-limiting example such as a shadedfloor lamp which lights up only a small area around itself, in order toprovide a well-defined force field via IR, for example.

A fence navigation beacon may emit a yellow beam directly out the frontof the navigation beacon (0 degrees) and a single navigation beam (redor green) at about a 60-degree angle to the right or left of the yellowbeam, for example. A gate navigation beacon may emit a yellow beam tothe front, a red beam at −60 degrees, and a green beam at about +60degrees, as another non-limiting example; also, for example, a trailmarker Navigation beacon may emit a red beam at about −60 degrees and agreen beam at about +60 degrees.

Navigation beacon “beams” in some non-limiting examples may not benarrowly focused (thus not requiring a special lens); they may fan outto light as much of the room as may be practicable without mutualinterference. As an alternative, for example, a standard home base LEDnot requiring other optics may also be used.

Referring to FIGS. 24A-B and 32A-E, the docking behavior priorities(from highest to lowest) include docking retry docking bump follow 264c, docking bounce 264 d, docking quick turn 296 c, docking distanthoming 296 b, docking lobe following 296 a, and docking field following296 d. The robot 302 must generally approach the dock 340 from a forwarddirection with less than 4 degrees of skew in order to dock properly.

The default docking behavior, docking lobe following 296 a, as shown inFIG. 32A, is executed when no other docking behavior has a higherpriority. When the robot 302 detects the left (red) beam 350 only, itfollows the edge of the red beam 350 in a clockwise direction. When therobot 302 detects the right (green) beam 360 or the overlap area of thered and green beams 350 and 360, respectively, it follows the edge ofthe green beam 360 in a counterclockwise direction. This results in therobot 302 appearing to follow the outside of the nearest docking beam350 or 360 around to the front of the dock 340 at zero degrees and thenfollowing a normal (zero degree) edge 362 right onto the dockingcontacts. When the robot 302 detects the force field 370 during thisbehavior it slows down in order to follow more accurately.

The robot 302 keeps track of the signals detected by theomni-directional receiver 322 over a window of 30 seconds. When therobot 302 detects that the frequency and variance of line crossingevents (crossing the normal (zero degree) edge 362) is above about 1 Hzand below a variance of about 2.5 seconds it determines that the robot302 is following the normal (zero degree) edge 362 and will simply drivestraight by executing a smooth homing behavior, instead of continuing tofollow the edge 362 (with the inevitable right-left oscillation) underthe lobe following behavior 296 a.

Referring to FIG. 32B, the quick turn behavior 296 c is activated whenthe robot 302 has encountered a docking beam 350 or 360 while drivingstraight, spiraling, bump following, or wall following, is not in theforce field 370, and has not detected the dock 340 with its directionalreceivers 318 in the last several seconds. When the robot 302 detectsthe red beam 350, it arcs clockwise toward the dock 340. When the robot302 detects the green beam 360 or the overlap area of the red and greenbeams 350 and 360, it arcs counterclockwise toward the dock 340. Whenthe robot 302 detects the other beam 350 or 360, detects the dock 340with its directional receivers 318, or has arced more than 360 degrees,this behavior 296 c aborts. Typically it is then followed by the lobefollowing behavior 296 a.

Referring to FIG. 32C, the distant homing behavior 296 b is activatedwhen the robot 302 has not detected the force field 370 in itsomni-directional receiver 322 in the last several seconds, and detectsthe dock 340 with the directional receiver 318. If the robot 340 detectsthe red or green beams 350 and 360, respectively, it will drive towardthem. If the robot 340 only detects the force field 370 it will drivetoward the force field 370. This allows the robot 302 to approach thedock 340 from a distance at any angle. When the robot 302 detects theforce field 370 with its omni-directional receiver 322 this behavior 296b aborts. During a front approach this is typically followed by the lobefollowing behavior 296 a. During a side approach this is typicallyfollowed by the field following behavior 296 d.

Referring to FIG. 32D, the field following behavior 296 b activates whenthe robot 302 detects the force field 370 with its omni-directionalreceiver 322, has not detected the red or green beam, 350 and 360respectively, with its omni-directional receiver 322 in the last second,and does not see the red or green beam 350 and 360, respectively, withits directional receivers 318. The robot 302 follows the edge 372 of theforce field 370 with its omni-directional receiver 322 in a randomdirection (cw or ccw) until it detects the red or green beam, 350 and360 respectively, a bump, a cliff, or has traveled more than 1 meter.When the robot 302 detects the red or green beam, 350 and 360respectively, it engages in reverse lobe following 296 a for a distanceof about 1 meter or until a bump is detected in order to travel awayfrom the dock 340 along the normal (zero degree) edge 362 and straightenout. Then the robot 302 turns 180 degrees or until it faces the dock340. Then the behavior 296 b aborts. Typically the lobe followingbehavior 296 a activates next to finish docking.

Referring to FIG. 32E, the robot 302 can dock successfully even whenthere are obstacles completely or partially occluding the docking beams350 and 360 or the robot's physical access to the dock 340 from some,but not all, approach angles by executing an obstacle dock behavior 296e. When the robot 302 is seeking the dock 340 and has detected a dockingbeam 350 or 360 in its omni-directional receiver 322 in the last severalseconds, and then also detects a bump, it activates the docking bouncebehavior 264 c. With about a 66% probability, the obstacle dock behavior296 e initiates a bump follow behavior 264 c and with about a 33%probability, the docking bounce behavior 264 d which has the robot 302simply back up, turn a random angle between 10 and 170 degrees for sideimpacts or 75 and 255 degrees for front impacts, and then aborts thebehavior 264 d. The bump follow behavior 264 c follows an edge of theobstacle with the robot's bumper until one of the following conditionsoccurs: a) the robot 302 detects the dock 340 with the directionalreceiver 318 and does not detect it with is omni-directional receiver322, with about a 66% probability; b) the robot 302 detects a crossingof the normal (zero degree) edge 362 from right to left and is bumpfollowing 264 c in a clockwise direction, or the robot 302 detects acrossing of the normal (zero degree) edge 362 from left to right and isbump following 264 c in a counterclockwise direction, with about a 66%probability; c) the robot 362 detects the force field 370 with itsomni-directional receiver 322; d) 30 seconds has passed since the onsetof the bump follow behavior 264 c; or e) no docking beam 350 or 360 hasbeen detected by the omni-directional receiver 322 for more than about 5seconds.

Another possible implementation of bump follow 264 c includes the robot302 keeping track of the projected location of the dock 340 and turningpreferentially toward the estimated dock location during bump follow 264c. Each time the robot 302 crosses the normal (zero degree) edge 362while facing the dock 340 and detecting the dock 340 by its directionalreceiver 318, the robot 302 uses odometry to project the location of thedock 340 about 5 feet out along a direction of travel. The robot 302 canuse odometry throughout the docking maneuver to estimate the orientationof itself to the projected location of the dock 340.

The combination of short bouts of bump following and normal dockingmethods allow the robot 302 to dock in the face of a large variety ofobstacles including but not limited to walls, chairs, and boxes, as wellas reflections of the IR docking beams.

“ROBOT OBSTACLE DETECTION SYSTEM”, U.S. Pat. No. 6,594,844, disclosingproximity sensors such as cliff sensors and wall following sensors;“AUTONOMOUS FLOOR-CLEANING ROBOT”, U.S. Pat. No. 6,883,201, disclosing ageneral structure of an iRobot Roomba coverage/cleaning robot and mainand edge cleaning heads in detail; “METHOD AND SYSTEM FOR MULTI-MODECOVERAGE FOR AN AUTONOMOUS ROBOT”, U.S. Pat. No. 6,809,490, disclosingmotion control and coverage behaviors, including escape behaviors,selected by an arbiter according to the principles of behavior basedrobotics; and “METHOD AND SYSTEM FOR ROBOT LOCALIZATION ANDCONFINEMENT”, U.S. Pat. No. 6,781,338, disclosing virtual walls, i.e,.robot confinement using wall-simulating directed beams, are eachincorporated by reference herein in their entireties.

Other robot details and features combinable with those described hereinmay be found in the following U.S. patent applications, entitled“COVERAGE ROBOT MOBILITY” having assigned Ser. No. 11/633,885; “MODULARROBOT” having assigned Ser. No. 11/633,886; and “ROBOT SYSTEM” havingassigned Ser. No. 11/633,883, the entire contents of the aforementionedapplications are hereby incorporated by reference.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made without departingfrom the spirit and scope of the following claims. Accordingly, otherimplementations are within the scope of the following claims.

1-31. (canceled)
 32. A robot comprising: a chassis; a wheeled drive supporting the chassis and operable to maneuver the robot; one or more sensors responsive to an environment about the robot; a memory storing instructions to generate an internal map configured to be used to navigate between bounded regions; and a controller in communication with the wheeled drive, the sensors, and the memory, the controller executing the instructions to navigate the robot from a first bounded region to a second bounded region by navigating from a first navigation beacon to a second navigation beacon based on line-of-sight directions to distant observed objects, the first and second navigation beacons comprising passive physical objects having one or more features identifiable in the environment by the sensors.
 33. The robot of claim 32, wherein the controller is further configured to execute instructions to perform a remote room traversal sequence, in which the robot maneuvers away from the first navigation beacon and aligns in a particular direction using odometry to traverse the first bounded region according to the map.
 34. The robot of claim 32, wherein the controller is further configured to execute instructions to perform a remote room traversal sequence according to the map, in which the robot: maneuvers to the first navigation beacon; turns away from the first navigation beacon to a launch direction based on an identifiable feature of the first navigation beacon; and maneuvers in the launch direction towards the second navigation beacon.
 35. The robot of claim 32, wherein the controller is further configured to execute instructions to align the robot with one of the first and second navigation beacons and maneuver the robot according to the map.
 36. The robot of claim 35, wherein the executed instructions align the robot with one of the first and second navigation beacons by: discerning a position of the navigation beacon in response to detection of an identifiable feature of the navigation beacon; and aligning a drive direction of the wheeled drive in relation to a path defined by the identifiable feature of the navigation beacon.
 37. The robot of claim 32, wherein the map comprises a topological map having nodes and links, wherein the nodes correspond to a plurality of bounded regions including the first and second bounded regions and the links correspond to a plurality of navigation beacons including the first and second navigation beacons.
 38. The robot of claim 37, wherein the controller is further configured to execute instructions to generate the map by detecting, with the sensors, a unique identifier relating to each of the plurality of navigation beacons, and incorporating an additional link and/or node in the map as each unique identifier is detected.
 39. The robot of claim 38, wherein the unique identifiers are encoded within emissions from respective navigation beacons.
 40. The robot of claim 32, wherein the controller is further configured to execute instructions to initiate one or more homing requests and navigate the robot according to a location state of the map, causing the robot to proceed successively through a plurality of bounded regions, including at least the first and second bounded regions.
 41. The robot of claim 40, wherein, during the one or more homing requests, instructions executed by the controller cause the robot to navigate between a plurality of navigation beacons, including the first and second navigation beacons, based on the map.
 42. The robot of claim 32, wherein the identifiable features of the first and second navigation beacons comprise directed emissions detectable by the sensors of the robot and indicating a direction of the beacon.
 43. The robot of claim 42, wherein one or more of the directed emissions comprises an IR signal.
 44. The robot of claim 42, wherein the one or more sensors comprise an omni-directional receiver configured to sense directed emissions from the first and second navigation beacons.
 45. The robot of claim 32, wherein the robot includes a floor cleaning system that removes debris from the floor as the robot is maneuvered.
 46. The robot of claim 32, wherein the controller is further configured to execute instructions to maneuver the robot in a cliff avoiding behavior as the robot navigates from the first bounded region to the second bounded region.
 47. The robot of claim 32, wherein the first and second bounded regions correspond to separate rooms of a building, such that navigation from the first navigation beacon to the second navigation beacon comprises room-to-room navigation. 